package com.ctshk.rpc.finance.service;

import com.ctshk.common.dto.Result;
import com.ctshk.common.model.PageResponse;
import com.ctshk.rpc.finance.dto.bill.BillCheckDetailDTO;
import com.ctshk.rpc.finance.dto.bill.BillCheckDetailListDTO;
import com.ctshk.rpc.finance.dto.bill.BillCheckListDTO;
import com.ctshk.rpc.finance.req.bill.*;

/**
 * <p>
 * 客户对账 服务类
 * </p>
 *
 * @author 叶冠峰
 * @since 2021-03-26
 */
public interface IFinanceBillCheckService  {

    /**
     * 列表
     * @param req
     * @return
     */
    Result<PageResponse<BillCheckListDTO>> list(BillCheckListReq req);

    /**
     * 新增
     * @param req
     * @return
     */
    Result add(BillCheckAddReq req);

    /**
     * 批量删除
     * @param req
     * @return
     */
    Result del(BillCheckDelReq req);

    /**
     * 详情
     * @param req
     * @return
     */
    Result<BillCheckDetailDTO> detail(BillCheckDetailReq req);

    /**
     * 修改
     * @param req
     * @return
     */
    Result update(BillCheckUpdateReq req);

    /**
     * 审批
     * @param req
     * @return
     */
    Result approval(BillCheckApprovalReq req);

    /**
     * 往来明细列表
     * @param req
     * @return
     */
    Result<PageResponse<BillCheckDetailListDTO>> detailList(BillCheckDetailListReq req);

    /**
     * 对账单详情-对账明细列表
     * @param req
     * @return
     */
    Result<PageResponse<BillCheckDetailListDTO>> checkDetailList(BillCheckIdDetailListReq req);

    /**
     * 撤回审批
     * @param req
     * @return
     */
    Result rollBack(RollBackReq req);
}
